API 在做新增的動作時也需要驗證 json 裡面的參數是否有符合規定,還好 Laravel 都幫我們準備好了~一起來看看如何驗證輸入吧。
表單請求驗證(FormRequest)是Laravel框架提供的用戶表單數據驗證方案,此方案相比手工調用validator來說,能處理更為複雜的驗證邏輯。
接下來我們創建 BookRequest ,使用以下命令:
$ php artisan make:request BookRequest
執行成功後會生成以下文件:
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class BookRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return false;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
//
];
}
}
authorize() 方法是表單驗證自帶的另一個功能——權限驗證,這邊我們不會用到此功能,此處我們 return true; 即可。
public function authorize()
{
return true;
}
接下来我们需要定制 rules() 方法,如下:
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
// 書名必填且為字串
'name' => 'string',
// 作者必填且為字串
'author' => 'string',
// 價錢必填且為數字
'price' => 'numeric',
// 出版日期必填且為日期
'publication_date' => 'date'
];
}
rules() 方法内,分別設定不太一樣的驗證規則。
然後再 BookController 中 store() 方法內加入 BookRequest 如下:
public function store(BookRequest $request)
{
Book::create($request->all());
return response()->json(['新增書籍成功'], 200);
}
阿~~電腦有點問題!今天先到這裡囉~~之後再把內容補齊!